package com.git.hui.yinshua.biz.banner.service.convert;

import com.git.hui.yinshua.api.model.banner.BannerLinkEnum;
import com.git.hui.yinshua.api.model.banner.BannerTabEnum;
import com.git.hui.yinshua.biz.banner.dao.entity.BannerEntity;
import com.git.hui.yinshua.biz.rest.models.banner.res.BannerDto;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author YiHui
 * @date 2024/6/17
 */
public class BannerConvert {

    public static BannerDto toBanner(BannerEntity entity) {
        BannerDto dto = new BannerDto();
        dto.setBannerId(entity.getId());
        dto.setTab(entity.getTab());
        BannerTabEnum tab = BannerTabEnum.tabOf(entity.getTab());
        dto.setTabName(tab == null ? "" : tab.getName());
        dto.setImg(entity.getImg());
        dto.setImgColor(entity.getImgColor());
        dto.setTitle(entity.getTitle());
        dto.setIntro(entity.getIntro());
        dto.setState(entity.getState());
        dto.setLink(entity.getUrl());
        BannerLinkEnum linkEnum = BannerLinkEnum.fromUrl(entity.getUrl());
        dto.setLinkType(linkEnum == null ? null : linkEnum.getPrefix());
        dto.setCreateAt(entity.getCreateAt());
        dto.setSort(entity.getSort());
        return dto;
    }

    public static List<BannerDto> batchToBanners(List<BannerEntity> list) {
        if (CollectionUtils.isEmpty(list)) {
            return new ArrayList<>();
        }

        return list.stream().map(BannerConvert::toBanner).collect(Collectors.toList());
    }

}
